命令行参数


启动 NW.js 时,可以使用下面的命令行参数,以改变一些默认行为。

关于命令行参数

如果用户通过命令行启动应用,如 your-app file.txt file2.txtfile.txt file2.txt 会被记录在命令行参数中,您可以通过 nw.App.argv 来获取命令行参数数组。如果您的应用已经有实例正在运行中,启动新实例时,运行中的实例的 App 对象会触发 open 事件,可以获取到新实例的完整命令行。

注意

现在有一个限制:如果命令行参数是硬盘上 .js 文件的文件名,NW 只会将其作为上层 Node.js 运行,这是为了支持 child_process.fork() API。

--url

应用加载 URL:--url=http://nwjs.io

--mixed-context

使用 混合环境模式 运行 NW.js,而不是独立环境模式。

--nwapp

指定应用路径的可选方式。该参数在 测试 时很有用。

--user-data-dir

指定应用的数据目录,该目录用于存储数据、缓存以及崩溃转储等信息。各平台下默认的数据目录如下:

  • Windows:%LOCALAPPDATA%/<name-in-manifest>/
  • Mac:~/Library/Application Support/<name-in-manifest>/
  • Linux:~/.config/<name-in-manifest>

<name-in-manifest>配置文件中的 name 字段。

--disable-devtools

禁止用户访问开发工具,用于 SDK 版本。

--enable-node-worker

Web Workers 启用 Node.js 整合。当使用高效 结构化克隆算法 与 DOM 交换大量数据 时,有助于新线程卸载占用 CPU 的任务。

注意:Node.js 的二进制模块需要线程安全才能使用该功能。我们已经对 Node.js 核心进行了修改,以确保核心 API 是线程安全的,但对于第三方二进制模块,我们无法保证这一点。对于纯 JS 模块,只要依赖的模块都是线程安全的,就是线程安全的。不启用该功能则不会有任何副作用。

--disable-raf-throttling

使用该参数,requestAnimationFrame() 的回调在窗口最小化或隐藏时也会持续触发,这对于游戏开发者来说特别有用。不使用该参数时,行为与浏览器相同。

默认情况下,存储在磁盘上的 cookie 在 Chromium 中是加密的。使用该参数可以禁用加密以方便测试(如在不同系统之间共享 cookie)。

--disable-crash-handler=true

禁用单进程模式的崩溃处理进程。注意:需要明确地将其设置为 ‘true’。当它和 --single-process 一起使用时,您的应用程序将只有一个 NW 进程。使用该参数将禁用崩溃转储功能。该选项只在命令行中(而不是在 package.json 中)有效。

--enable-gcm

启用 chrome.gcm API。

--enable-transparent-visuals

--disable-transparency

--disable-gpu

--force-cpu-draw

这些是与窗口透明度相关的参数。参考透明窗体 .

其他 Chromium 参数

同时也支持 https://github.com/nwjs/chromium.src/blob/nw13/chrome/common/chrome_switches.cchttps://github.com/nwjs/chromium.src/blob/nw13/content/public/common/content_switches.cc 列举的 Chromium 参数。也可以参考 http://peter.sh/experiments/chromium-command-line-switches/

这些参数可以添加到 配置文件的 chromium-args 字段中,作为 NW.js 的启动参数。

环境变量

环境变量 NW_PRE_ARGS 的值会被添加到配置文件的 chromium-args 的值前面。

例如:

set NW_PRE_ARGS=--load-extension='./node_modules/nw-vue-devtools-prebuilt/extension' && nw .